package xyz.zcq.zcqrpc.model;

import lombok.Data;

/**
 * 服务元信息（注册信息）
 */
@Data
public class ServiceMetaInfo {

    /**
     * 服务名称
     */
    private String serviceName;
    /**
     * 服务版本号
     */
    private String serviceVersion = "1.0";
    /**
     * 服务域名
     */
    private String serviceHost;
    /**
     * 服务端口号
     */
    private Integer servicePort;
    /**
     * 服务分组（暂未实现）
     */
    private String serviceGroup;

    /**
     * 获取服务的键
     *
     * @return 键
     */
    public String getServiceKey() {
        return String.format("%s:%s", serviceName, serviceVersion);
    }

    /**
     * 获取服务注册节点的键
     *
     * @return 键
     */
    public String getServiceNodeKey() {
        return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
    }

    /**
     * 获取服务地址
     *
     * @return 服务地址
     */
    public String getServiceAddress() {
        String address = String.format("%s:%s", serviceHost, servicePort);
        if (!address.contains("http")) {
            address = "http://" + address;
        }
        return address;
    }

}
